<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script>
        /*
        function createObject(o) {//这是一工厂
            function F() {//是一个 构造
            }

            F.prototype = o;//被传入的参数，做为新对象的原型对象
            return new F();//返回新对象
        }
        */
        /*
         ES5新增Object.create()方法，规范化了原型化继承，该方法传入两个参数，
         一个是作为新对象原型的对象和（可选）一个为新对象定义额外属性的对象。
         在传入一个参数的情况下，Object.create()和上述方法没差别。例：
         */

        var person = {
            name: 'Rick',
            friends: ['Lebron', 'Kobe', 'Wade']
        };

        var anotherPerson = Object.create(person);
     //   anotherPerson.name = 'Morty';
        anotherPerson.friends.push('Jessica');
        console.log(anotherPerson.name)
        console.log(anotherPerson.__proto__.name)
        console.log(anotherPerson.friends)

    </script>
</head>
<body>
原型式继承
</body>
</html>